package apuesta.service;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import apuesta.dto.DisciplinaDto;
import apuesta.dto.DisciplinaDto2;
import apuesta.hibernate.HibernateFactoryApuesta;

public class DisciplinaService {
	
	public static DisciplinaDto buscar(int id_disciplina){
		Session sesion = HibernateFactoryApuesta.getSessionFactory().openSession();
		System.out.println("disciplina a buscar");
		DisciplinaDto disciplina = null;
		try{
			disciplina = (DisciplinaDto)sesion.get(DisciplinaDto.class, id_disciplina);
			System.out.println("descripcion: "+disciplina.getDescripcion());
		}catch(Exception ex){
			System.err.println("no se encontro la disciplina: "+ex);
		}finally{
			sesion.close();
		}
		return disciplina;
	}
	
	public static DisciplinaDto2 buscar2(int id_disciplina){
		Session sesion = HibernateFactoryApuesta.getSessionFactory().openSession();
		Transaction tx = sesion.beginTransaction();
		System.out.println("disciplina a buscar");
		DisciplinaDto2 disciplina = null;
		try{
			Query query = sesion.createSQLQuery("select * from t_disciplina where Id_Disciplina = "+id_disciplina).addEntity("DisciplinaDto2", DisciplinaDto2.class);
			disciplina = (DisciplinaDto2)query.uniqueResult();
			sesion.flush();
			sesion.clear();
		}catch(Exception ex){
			System.err.println("no se encontro la disciplina: "+ex);
		}finally{
			tx.commit();
			sesion.close();
		}
		return disciplina;
	}

	public static List<DisciplinaDto> lista_disciplinas() {
		Session sesion = HibernateFactoryApuesta.getSessionFactory().openSession();
		List<DisciplinaDto> disciplinas = null;
		try{
			Query query = sesion.createQuery("select d from DisciplinaDto d");
			disciplinas = (List<DisciplinaDto>)query.list();
		}catch(Exception ex){
			System.err.println("no se pudo traer la lista de disciplinas: "+ex);
		}finally{
			sesion.close();
		}
		return disciplinas;
	}

}
